Logical zone mapping

ABSTRACT

A mass data storage system includes a plurality of communicatively coupled storage resources that are each controlled by one of a plurality of distinct storage controllers. Each of the storage resources are mapped to one or more logical zones, and the logical zones each apply an associated storage condition to data stored therein.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims benefit of priority to U.S. ProvisionalPatent Application No. 62/012,205 entitled “Off-line/On-line Mass DataStorage Management” and filed on Jun. 13, 2014, and also claims benefitof priority to U.S. Provisional Patent Application No. 62/012,219entitled “Off-line/On-line Mass Data Storage System” and filed on Jun.13, 2014. Both of these applications are specifically incorporated byreference for all that they disclose or teach.

BRIEF DESCRIPTIONS OF THE DRAWINGS

FIG. 1 illustrates an example mass data storage system with storageresources allocated between multiple logical zones.

FIG. 2 illustrates another example mass data storage system thatimplements logical zoning of storage resources.

FIG. 3 illustrates aspects of another example mass storage system thatimplements logical zoning of storage resources.

FIG. 4 illustrates another mass data storage system including an examplecontrol system for selecting one or more logical zones to receive dataof a write request.

FIG. 5 illustrates example operations for mapping and selecting logicalzones in a mass data storage system.

FIG. 6 illustrates additional example operations for mapping andselecting logical zones in a mass data storage system.

SUMMARY

Implementations disclosed herein provide for mapping a plurality ofstorage resources to one or more of multiple logical zones in a storagesystem. Each of the logical zones is associated with a different storagecondition and defines a group of storage resources applying theassociated storage condition to data stored therein.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter. These andvarious other features and advantages will be apparent from a reading ofthe following Detailed Description.

DETAILED DESCRIPTION

On-line mass data storage (sometimes referred to as secondary storage)refers to one or more interconnected data storage units that areactively running and available for read/write operations. Exampleon-line mass data storage units include hard disk drives (HDDs), opticaldrives, and flash memory drives. Typically, time-to-data (TTD) foron-line mass data storage units is less than 2 milliseconds. On-linemass data storage benefits from very high TTD capabilities, but isexpensive to build and operate. More specifically, individual on-linemass data storage units are of high-quality, driving build costs up, andthey consume significant power in an on-line state, driving operatingcosts up.

Near-line (or near on-line) mass data storage refers to one or moreinterconnected data storage units that are powered on, but in a lowpower consumption state and are brought to an on-line state beforerunning read/write operations. Hard disk drives, optical drives, and/orflash memory drives may also be used for near-line storage, with thedifference being an added mechanism to bring a selected storage unit toan on-line state for read/write operations. Such example mechanisms arerobotic near-line storage (i.e., the system is aware of where a desireddata chunk resides on a physical volume and utilizes a robotic mechanismto retrieve the physical volume for read/write operations) and harddrive near-line storage (e.g., massive array of idle discs (MAID)). MAIDsystems archive data in an array of disc drives that are operating in astandby power state, but most of which are not spinning. The MAID systemspins up each disc drive on demand when desired to perform read/writedata on a disc within that drive. Typically, TTD for MAID-type near-linemass data storage units is less than 4 milliseconds. Near-line mass datastorage systems have lower operating costs than on-line mass datastorage systems due to the reduced power demand, but have similar buildcosts.

Off-line (or cold) mass data storage refers to one or moreinterconnected data storage units that are kept in a power off stateand/or utilize remotely located storage media to store data. Typically,off-line mass data storage utilizes one or more interconnected tapedrives, each with numerous tapes associated with the drive. As discussedabove with regard to robotic near-line storage, a desired tape isretrieved from its storage location and loaded into its associated drivefor read/write operations. In off-line tape mass data storage units, thedesired tape is often manually retrieved and loaded, and as a result TTDfor off-line tape mass data storage units can be greater than 24 hours.While the build and operating costs of off-line tape mass data storageare low, some applications require a faster access time than 24 hours,but not as fast as on-line or near-line mass data storage systems.

The disclosed off-line HDD mass data storage systems can achieve TTDgreater than 4 ms and typically faster than that of off-line tape massdata storage while maintaining build and operating costs competitivewith off-line tape mass data storage. According to one implementation,storage resources in the disclosed off-line HDD mass data storagesystems are classified into logical zones based on a storage conditionapplied to data stored in each respective zone. The usage of logicalzones enhances system performance in a variety of ways and also providesa diverse array of storage options for an end user.

FIG. 1 illustrates an example mass data storage system 100 with storageresources allocated between multiple logical zones (e.g., logical zones126, 136) that store data according to a common storage condition. Thestorage system 100 (e.g., a server cluster or farm) is comprised of anumber of storage racks (e.g., storage racks 102, 104) oriented inadjacent or separate physical locations or facilities (e.g., data roomsor centers). In some implementations, a first quantity of storage racksis located in a first server facility, a second quantity of storageracks is located in a second server facility, and so on. The serverfacilities may be separated by any distance (e.g., several feet or manymiles). The storage system 100 may accommodate any number of storageracks and each rack is located in one of any number of serverfacilities. The storage system 100 may accommodate any use of mass datastorage (e.g., content delivery, backup, archiving, running scientificsimulations such as computational fluid dynamics, and rendering computergenerated imagery, such as a render farm).

The individual storage racks are interconnected to one another via acomputer network 106 (e.g., Gigabit Ethernet or a custom interconnectnetwork). Further, the interconnected storage racks may be connected toone or more external data source(s)/destination(s) 108 via the samecomputer network 106 or an additional interconnected network (e.g., alocal area network or a wide area network, not shown) using a variety ofcommunication protocols (e.g., TCP/IP, packet over SONET/SDH,multiprotocol label switching (MPLS), asynchronous transfer mode (ATM),Ethernet, and frame relay). As a result, data may be moved between theindividual storage racks and the external data source(s)/destination(s)108 as desired.

Each individual storage rack includes an array of storage media units,each powered by a power supply (e.g., a power supply 164) and configuredto receive data transfer requests (e.g., read/write requests) from arack controller (alternatively referred to as a storage rack server or astorage system server). For example, storage rack 102 includes 12individual storage media units (e.g., storage media unit 110) and powersupply 164 controlled by rack controller 118. Storage rack 104 includes6 individual storage media units (e.g., storage media unit 112) andpower supply 166 controlled by rack controller 120. In someimplementations, individual storage racks may include greater or fewerindividual storage media units than the depicted 12 and 6 storage mediaunits per storage rack. In other implementations, some racks may notinclude a rack controller and/or an individual rack controller maycontrol multiple racks.

Each media unit within a storage rack comprises an array of individualstorage drives controlled by a same media unit controller. For example,the media unit 110 includes 6 individual storage drives (e.g., storagedrive 114) that are each read and written to by a media unit controller122. The media unit 112 includes 4 individual storage drives (e.g.,storage drive 116) that are each read and written to by a media unitcontroller 124. In other implementations, individual storage media unitsmay include greater or fewer storage drives than the depicted 6 and 4storage drives per media unit.

As shown, the power supply units 164, 166 power multiple media units(e.g., an entire associated rack, either rack 102 or rack 104). However,in another implementation, there exist multiple power supply units perrack and/or each power supply unit powers a single associated mediaunit. An upper end power capability of each individual power supply maydetermine how many storage drives may be operated simultaneously by thatpower supply, which may range from a single media unit to multiple mediaunits.

In some implementations, the individual media units are selectivelyinstalled and uninstalled from the storage rack (e.g., configured as ablade, which corresponds to the storage rack physical configuration). Inan example standard server-rack configuration, the individual storageracks are each subdivided into individual rack units (e.g., 42 rackunits), where each media unit is physically dimensioned to fill one rackunit (i.e., 19 inches wide by 1.75 inches tall) and thus each storagerack can accommodate a total of 42 media units. In otherimplementations, the storage rack is physically dimensioned toaccommodate any desired number of media units.

In one implementation, each storage drive is a distinct storage mediumor set of storage media with some or all of the read/write controlfunctions of the storage drive removed to the corresponding media unitcontroller and/or rack controller of the mass data storage system 100.As a result, one or both of the media unit controller and/or rackcontroller of the mass data storage system can selectively power (e.g.,power-on, power-off, spin-up, spin-down, etc.) an individual storagedrive as desired to read/write data from the individual storage drivewithout having to supply power to the individual storage drivecontinuously.

In various implementations, the individual storage drives in each of themedia unit have characteristics present in existing state of the artstorage drives with the exception that some or all of the controlhardware and software is removed to the corresponding media unitcontroller and/or rack controller, thereby centralizing controlfunctions of the individual storage drives to a media unit level and/ora rack level. Further, the individual storage drives may utilize anyavailable storage technology (e.g., magnetic storage, optical storage,semiconducting storage (e.g., flash-based solid state)). In theillustrated implementation, each of the storage resources in anindividual media unit is managed by a same controller. For example, themedia unit controller 122 manages and directs read and write operationsto each of the six storage resources (e.g., a disk drive 114) in themedia unit 110.

Further, by moving some or all of the control hardware/software of theindividual storage drives out of the individual storage drives and intothe corresponding media unit controller and/or rack controller, theindividual storage drives may have disparate characteristics and theoperation of the mass data storage system 100 may be optimized based onthe performance characteristics of the storage drives available withinthe system 100. In one example implementation, each of the individualstorage drives within a media unit has disparate performancecharacteristics, but each media unit has the same performancecharacteristics (i.e., similar within industry acceptable tolerances).

Storage resources in the system 100 are partitioned into a number oflogical zones (e.g., a logical zone 126, 136) that are each configuredto stored data according to a same storage condition. For simplicity,the storage resources included in each of the illustrated logical zones126 and 136 are shown to be in physical proximity to other storageresources in the same logical zone 126 or 136. However, physicalproximity is not a requirement of resources in a shared logical zone. Insome implementations, a logical zone can include storage resources fromdifferent media units, racks, and even facilities (e.g., geographicallocations). For example, a zone may include storage resourcescommunicatively coupled via the computer network 106 but located atcomputer farms in different geographical regions.

When a data transfer request (e.g., read or write command) is receivedby a controller (e.g., one of the rack controllers 118, 120) in thesystem 100, the controller selects a logical zone to receive data or actas a data source for execution of the data transfer request. Some or allof the individual logical zones (e.g., the logical zones 126 and 136)stores data according to a storage condition that is different from astorage condition of one or more other logical zones in the system 100.

A “storage condition” of a logical zone may refer to, for example, aperformance characteristic satisfying an operational threshold common tostorage resources in a logical zone; a method of data storage (e.g.,level of integrity or data security) provided by storage resource(s) ina same logical zone; and/or a degree of data integrity attributable to astructural arrangement of storage resource(s) in a same logical zone.Examples of these and other storage conditions utilized in defininglogical zones (e.g., the logical zones 126, 136, 140) are discussed ingreater detail below with respect to FIGS. 2-3.

Using logical zones to sort and store incoming data can provide a numberof benefits. For example, a likelihood of data loss due to power supplyfailure can be diminished if storage resources are assigned to logicalzones based on a distribution of power resources (e.g., power supplyunits 164, 166). Further, read and write latencies can by decreased byzoning the storage resources according to common performancecharacteristics, such as by storage capacity, rotational speed,time-to-data (TTD), etc. Further still, the use of logical zoning canprovide a diverse selection of storage options to an end user. Forexample, a system implementing logical zoning according to the disclosedimplementations may allow a user to select a desired type of storage, adesired security protocol, a desired degree of compression, desireddegree of redundancy, desired speeds of accessibility, and more.

FIG. 2 illustrates another example mass data storage system 200 thatimplements logical zoning of storage resources for data management. Themass data storage system 200 includes multiple racks (e.g., racks 202,204, and 206) that each includes a rack controller (e.g., rackcontrollers 218, 219, 220) and at least one power supply unit (e.g.,power supply units 264, 265, 266) powering the storage resources on theassociated rack. Although three racks (e.g., racks 202, 204, and 206)are shown in FIG. 2, the mass data storage system 200 may include anynumber of racks and media units at one or more physical storagefacilities.

Each of the racks 202 and 204 further includes an array of media units(e.g., media units 210, 212), and each of the media units includes amedia unit controller (e.g., a media unit controller 222). Each of therack controllers 218, 219, and 220 is communicatively coupled to themedia unit controllers within the corresponding rack (e.g., the racks202, 204, and 206 respectively), and each of the media unit controllersare communicatively coupled to an associated nest of storage drives(e.g., via compute nodes, serial attached SCSI (SAS) connections, etc.)

Controllers (e.g., rack controllers and/or media unit controllers) ofeach individual rack may be communicatively coupled to the controllersof other racks in the system. For example, the rack controller 218 maybe able to send and receive data transfer requests to and from the otherrack controllers 219 and 220, and to other racks in the mass datastorage system 200, such as those located at different storagefacilities.

Each storage resource (e.g., a storage drive 214) in the mass datastorage system 200 is assigned to an associated logical zone (e.g.,logical zones A-H). For simplicity, the storage resources included ineach of the illustrated logical zones A-H are shown to be in physicalproximity to other storage resources in the same logical zone (e.g.,each zone includes storage resources spanning a same row of media unitsacross the racks 202, 204, and 206). However, physical proximity is nota requirement of resources in a same logical zone. For example, onelogical zone (not shown) may include one or more drives within the mediaunit 210 in a top row of the rack 206, one or more drives within mediaunit 212 in a bottom row of the rack 206, and any number of storageresources from other racks in any physical location relative to themedia units 210 and 212.

When a data transfer request is received by a controller (e.g., a rackcontroller and/or a media unit controller), the controller selects alogical zone, and also selects one or more specific storage resources inthe selected logical zone on which to execute the data transfer request.The controller transmits the request along available channels within theidentified logical zone to the appropriate media unit controller(s)tasked with managing read/writes of each of the selected resource(s).

Each of the different logical zones A-H is configured to store dataaccording to one or more common storage conditions. By example and notlimitation, a number of potential “storage conditions” are discussedbelow.

In one implementation, a logical zone “storage condition” is a degree ofdata integrity provided by a structural arrangement of resources in thelogical zone. For example, logical zones may be defined so as todistribute available power supply units evenly between the storageresources in each logical zone. This concept is illustrated by theconfiguration of FIG. 2, wherein logical zone A applies a storagecondition in which no more than two media units share a common powersupply unit (e.g., power supply units 264, 265, and 266, respectively).As a result, unavailability of one or more of the media units due to apower supply failure is less likely to cause a delay in data transferand/or prevent recoverability of requested data.

In one implementation, a write of data to logical zone ‘A’ entailswriting error correction code (ECC) for the data on multiple differentresources (e.g., media units on each of the racks 202, 204, 206) withinthe logical zone A. If one power supply unit of logical zone A fails,some of the storage resources go offline. However, data of the offlineresource(s) may be recoverable using the ECC on the other resources inthe logical zone that are unaffected by the power failure.

In another implementation, a storage condition applied by a logical zoneis a maximum number of storage resources sharing a common fieldreplaceable unit (FRU) (e.g., a media unit). As used herein, ‘FRU’refers to a group of data resources that are collectively taken“offline” in order to replace an individual storage resource in thegroup. For example, all six storage drives within the media unit 210 maybe taken temporarily offline in order to replace an individual storagedrive 216 housed within the media unit 210. If an individual logicalzone includes storage resources that are spread across a relativelylarge number of FRUs, the system 200 is less likely to be disrupted fordata transfer requests occurring while one or more FRUs are offline. Thereason for this is similar to that described above: ECC can be spreadacross multiple storage resources in a logical zone. If one media unitof logical zone A is ejected to replace a drive, data stored on theoffline storage resource(s) may still be recoverable using the ECCstored on the other resources in the logical zone.

In other implementations, a storage condition applied by a logical zoneis a maximum number of storage resources sharing some physical componentother than an FRU or power supply (e.g., a fan). This storage conditionmitigates system performance degradation in the event that the sharedcomponent fails.

In lieu of the above examples, the storage condition(s) applied withineach of the logical zones A-H are not necessarily conditionsattributable to structure or distribution of storage resources in azone. In other implementations, the different logical zones (e.g.,logical zones A-H) are managed by different data management modules. Thedifferent data management modules may execute a same command type (e.g.,a write command, a read command, an erase command) according to adifferent set of processing operations. For example, a data managementmodule of logical zone A may write data according to a first set ofprocessing operations while a data management module of logical zone Bwrites data according to a second, different set of processingoperations. In these implementations, the storage condition of a logicalzone is an outcome of a processing operation applied to data storedwithin the logical zone. A few examples of this are provided below.

In one implementation, the storage condition of a logical zone is adegree of data redundancy with which data is saved in the logical zone.For example, a data management module of a first logical zone mayimplement a non-existent or a low level of redundancy (e.g., redundantarray of independent discs (RAID 0-3), while a data management module ofa second logical zone implements a medium level of redundancy (e.g.,RAID 4-6), and a data management module of a third logical zoneimplements a high degree of redundancy (e.g., RAID 7-10).

In another implementation, a storage condition of a logical zone is anerror correction code (ECC) rate utilized for writing data in eachlogical zone. For example, the data management module of logical zone Amay write data according to a different ECC rate than that utilized by adata management module of zones B, C, D, etc.

In yet another implementation, a storage condition of a logical zone isa degree or type of encryption applied to data stored in the zone. Forexample, data management modules of various logical zones may each writedata with a varying degree of encryption. A high-security encryptioncode is applied to data stored in a first logical zone; a mediumsecurity encryption code is applied to data stored in a second logicalzone; a low security encryption code is applied to data stored in athird logical zone, etc.

Yet another example storage condition of a logical zone is a read/writepriority that is associated with each read/write request to the logicalzone. For example, read/write operations in a low quality of service(QOS) logical zone may only occur during idle time, while read/writeoperation in a high QOS logical zone may interrupt any currentread/write operations being performed.

In still other implementations, a “storage condition” is a storageresource performance characteristic satisfying an operation threshold.Example performance characteristics include without limitation storagecapacity, rotational speed of a storage resource (e.g., a disk),time-to-data (TTD), and storage resource cost. These, and other,performance characteristics are discussed in greater detail below:

In one implementation, a storage condition of a logical zone is a sameor similar storage capacity shared by storage resources in the logicalzone. For example, 4 terabyte drives have the capability of storing atleast 4 terabytes of data and are formatted to store 4 terabytes ofdata. Drives that meet this threshold are referred to herein as havingthe same or similar storage capacity. Drives that do not have thecapability of storing 4 terabytes of data and/or drives that areformatted to store a different quantity of data are referred to hereinas having disparate storage capacity. Accordingly to one implementation,media units with a high storage capacity (or high data compression) aregrouped into a high capacity logical zone, while media units with aparticularly low storage capacity (or low data compression) are groupedinto a low capacity logical zone. Zoning storage resources according tostorage capacity allows for a uniform organization of meta data andincreased disc capacity utilization.

In another implementation, all storage resources in a same logical zoneshare the same or similar rotational speeds (e.g., another exampleperformance characteristic). For example, a 7,200 RPM storage drivevaries from 7,200 RPM by no more than 1% during read/write operations.Drives that meet this operating limitation are referred to herein ashaving the same or similar rotational speeds. Drives that fail to meetthis operating limitation are referred to herein as having disparaterotational speeds. According to one implementation, media units with aparticularly high read/write speed are grouped into a high speed zone.Similarly, media units with a particularly low read/write speed may begrouped into a low speed zone.

In still another implementation, storage resources in a same logicalzone are available are of the same or similar cost. For example,higher-cost (e.g., more reliable) storage resources may be assigned to afirst zone, while lower-cost (e.g., less reliable) storage resources maybe assigned to another zone.

In still another implementation, different logical zones includerandomly writeable data units of a same or similar capacity. Forexample, the storage drive 216 may be a shingled magnetic recording diskdrive including multiple shingled data bands that are each assigned toone of multiple different logical zones. In shingled magnetic recording,the term “shingled data band” refers to a grouping of adjacent datatracks written as a single unit. An update to one or more cells within ashingled data band includes re-writing the entire data band, includingboth changed and unchanged cells. By assigning shingled data bands todifferent logical zones based on storage capacity, a data write can beintelligently directed to a shingled band of an appropriate (comparable)size, reducing unnecessary read/write overhead.

In still other implementations, logical zones are used to partitiondifferent types of data. For example, logical zone A may store medicalrecords from the state of Colorado; logical zone B may store uploadeduser media files, etc.

In some implementations, selection of a logical zone for execution of adata write request is based on a storage characteristic of incomingdata, or based on a storage characteristic specified in association withthe data. Example storage characteristics are discussed in greaterdetail with respect to FIG. 3.

FIG. 3 illustrates aspects of another example storage system 300 thatimplements logical zoning of storage resources. The storage system 300includes a zone manager 302 that receives data transfer requests from acomputer network 306. Responsive to each data transfer request, the zonemanager 302 selects a logical zone of the mass data storage system 300on which to execute the data transfer request.

The zone manager 302 may include hardware and/or software implementedvia any tangible computer-readable storage media within orcommunicatively coupled to the mass data storage system. The term“tangible computer-readable storage media” includes, but is not limitedto, random access memory (“RAM”), ROM, EEPROM, flash memory or othermemory technology, CDROM, digital versatile disks (DVD) or other opticaldisk storage, magnetic cassettes, magnetic tape, magnetic disk storageor other magnetic storage devices, or any other tangible medium whichcan be used to store the desired information and which can accessed bymobile device or computer. In contrast to tangible computer-readablestorage media, intangible computer-readable communication signals mayembody computer readable instructions, data structures, program modulesor other data resident in a modulated data signal, such as a carrierwave or other signal transport mechanism.

In various implementations, some or all functionality of the zonemanager 302 (described below) may be implemented in rack controller(e.g., a rack controller 118, 120 of FIG. 1) of a mass storage system,one or more media unit controllers (e.g., a media unit controller 124 ofFIG. 1) or other computing node(s) communicatively coupled to processingresources capable of initiating reads and writes within the storagesystem 300. In one implementation, the storage system 300 includes amassive network of controllers (e.g., rack controllers, media unitcontrollers) that manage read and write operations to multiple differentstorage resources with disparate performance characteristics.

Storage resources in the storage system 300 are divided into a number oflogical zones. Each logical zone stores data according to a storagecondition that is different from a storage condition of one or moreother logical zones in the storage system 300. FIG. 3 generallyillustrates eight logical zones (A-H), but any number of such zones iscontemplated.

When the zone manager 302 receives a write request, the zone manager 302selects an associated logical zone for execution of the write request.In one implementation, the zone manager 302 selects a logical zone andone or more resources within the selected logical zone to receive thedata. The zone manager 302 then directs the read/write request to one ormore appropriate controllers with read/write authority to the selectedresources. In another implementation, the zone manger 302 selects alogical zone but does not specifically select which resources in thelogical zone may receive data of the write request. In this case, thezone manager 302 may simply forward the data write request to anothercontroller, such as a zone-level controller specifically designated forselecting resources to receive incoming data.

The selection of a logical zone for execution of a data write request isbased on a storage characteristic associated with the request. Morespecifically, the storage characteristic may be identified: (1) based oninformation implicit in the request, such as the size of a data write;(2) based on information specified by a user initiating the writerequest (e.g., within the request or in association with the request);(3) based on settings of a user subscription to storage on the storagesystem 300; or (4) based on a source of a particular data transferrequest (e.g., an IP address, geographical region, etc.).

For example, a user may subscribe to storage on the system 300 (e.g.,cloud-based storage) and elect, either by indicating preference orselecting a particular subscription plan, one or more storagecharacteristics that the zone manger 302 associates with data from thatuser. A group of users, such as those affiliated with a business (e.g.,a shared IP address) may share a subscription. Further, certain logicalzones may not be available for requests arriving from certain users, IPaddresses, etc.

In one implementation, the zone controller 302 selects a logical zonefor a write request based on a size of data to be written (e.g., oneexample storage characteristic). If, for example, the various logicalzones group together shingled data bands of the same or similar size,the zone controller 302 may select a logical zone to receive data thatincludes shingled data bands of capacity comparable to (e.g., equal toor just slightly larger than) the size of the data.

In another implementation, the zone controller 302 selects a logicalzone for a write operation based on a specified storage characteristic.For example, the storage characteristic may be specified by a user or inassociation with a user's subscription, profile, location, etc. Forexample, a user may specify or subscribe to a desired level of dataintegrity (e.g., redundancy) with which to save the data of the writerequest. The data is then directed to a logical zone that applies acorresponding degree of redundancy to the data stored therein. Forexample, high integrity data is directed to a high redundancy logicalzone (e.g., RAID 7-10); medium integrity data is directed to a “mediumredundancy” logical zone (e.g., RAID 4-6); and “low integrity data” isdirected to a “low redundancy” logical zone (e.g., RAID 0-3).

In other implementations, the storage characteristic used to select alogical zone is a specified type of error correction code (e.g., LDPC,modulation codes, etc.). In this case, the data management system 300directs the write request to a logical zone applying requested type oferror correction code to data stored therein.

In another implementation, the zone controller 302 selects a logicalzone for a write operation based on a specified frequency or a prioritywith which associated data is to be accessed. For example, data thatneeds to be frequently and/or quickly accessed may be directed tostorage resources in a high-speed logical zone, while data that isinfrequently accessed or not urgent when accessed is directed to storageresources in a low speed zone. Similarly, data considered high prioritymay be written to a higher QOS zone while data considered lower prioritymay be written to a lower QOS zone.

In yet another implementation, the zone controller 302 selects a logicalzone for a write operation based on a specified degree or type ofsecurity (e.g., data encryption). For example, the write request mayspecify a level of desired security (e.g., high security, low security).Data that is particularly sensitive or confidential may be specified as“high security” and stored in a high security logical zone (e.g., a zoneapplying a sophisticated encryption scheme), while data that is neitherparticularly sensitive nor confidential can be specified as “lowsecurity” and stored in a low security logical zone. A “high-security”logical zone may be, for example, a zone that utilizes advancedencryption techniques, such as techniques that allow for secure erasureand removal of the data.

In some implementations, the logical zones may overlap, providingdifferent logical zone assignments for storage resources based on one ormore performance characteristics associated with a particular data setto be stored therein. For example, Logical Zone A may be “fast-access”zone, Logical Zone G may be a “high QOS priority zone;” and Logical ZoneH may be a “low QOS priority zone.” A storage resource with a short TTDcould belong to Logical Zone A and also belong to one of Logical Zones Gor H.

Higher-performing logical zones may have a higher cost associated withthem that may be passed along to a user of the mass data storage system300 in the form of a surcharge. Similarly, lower-performing logicalzones may have a lower cost associated with them that is also passedalong to the user of the mass data storage system in the form of adiscount.

In some implementations, incoming data is assigned to a logical zonebased on an attribute of the data identified by the zone manager 302.For example, the zone manager 302 may be programmed to recognize thatincoming data is a medical record, or that the medical recordgeographically originates from Colorado. Colorado medical records mayall be directed to a same logical zone. In various otherimplementations, the zone manager 302 assigns data to a logical zone byidentifying a data type, geographic source, author or originator,security, confidentiality level, character encoding, a checksum, acryptographic hash, a digital signature, etc. In some implementations,the zone manager 302 appends the incoming data with an extended fileattribute describing characteristics of the data.

FIG. 4 illustrates another mass data storage system 400 including anexample control system 402 for selecting one or more logical zones toreceive data of a write request. Aspects of the control system 402 maybe contained within a rack controller (e.g., rack controller 118, 120 ofFIG. 1) and/or a media unit controller (e.g., media unit controller 124of FIG. 1) associated with each individual storage drive (e.g., astorage drive 214 of FIG. 2) of the mass data storage system 400. Insome implementations, aspects of the mass data storage system 400 mayspan multiple racks and/or geographic locations.

The control system 402 includes a storage interface 440 that allows themass data storage system to receive incoming data from external datasource(s) from a computer network 406 and send outgoing data to externaldata destination(s) (see, e.g., external data source(s) anddestination(s) 108 of FIG. 1) that may have disparate operating systemsoperating over one or more computer networks (see e.g., computer network106 of FIG. 1).

The control system 402 further includes a power manager 452 that queriescomputing nodes (e.g., controllers) to discover power information andcreate a power map 456 detailing physical distribution of storageresources and power availability within the storage system 400. A zonemanager 442 discovers performance characteristics of various systemstorage resources by querying system controllers (e.g., other rackcontrollers and/or media unit controllers) for such information.Additionally, the zone manager 442 works in conjunction with aread/write manager 446 to identify available types of data managementschemes (e.g., encryption, compression, etc.). Using the discoveredperformance characteristics, power map 456, and/or information from theread/write manager 446, the zone manager 442 generates a zone map 444that groups the various storage resources of the data storage system 400into logical zones.

In one implementation, zone manager 442 selects one or more logicalzones for each storage resource based on performance features that arecommon between different storage resources (e.g., storage capacity,access speed, drive reliability, etc.). In another implementation, thezone manager 442 selects one or more logical zones for each storageresource according to a scheme that ensures a particular distribution ofstorage drives between various power resources and/or across variousFRUs in the storage system 400. In still other implementations, the zonemanager 442 groups one or more storage resources into logical zonesbased on instructions from the data read/write manager 446. For example,the read/write manager 446 may identify a number of resources to apply afirst data management scheme (e.g., a sophisticated encryptions scheme)and a number or resources to apply a different data management scheme(e.g., a low-level encryption scheme).

Periodically, the zone manager 442 may re-generate the zone map 444 totake away or add storage capacity to one or more logical zones in thesystem. If, for example, storage resources in one logical zone are takenoffline (e.g., to replace a drive or other component), the zone managermay elastically re-allocate additional storage resources to that zone tokeep zone capacity the same. This reallocation may occur on a timeschedule for re-evaluating the storage needs of the mass data storagesystem or on-demand as the storage needs of the mass data storage systemchange.

To elastically re-allocate resources, the zone manager 442 may consultan elastic capacity library 450 including a master listing of storageresources that are either temporarily allocated to a particular zone oravailable for reallocation. Using such information, the zone manager 442can dynamically reallocate storage resources between logical zones anddynamically increase logical zone capacity as needed.

For example, the zone manager 442 may determine that incoming data is tobe stored in a first logical zone that does not have sufficientavailable storage space due to the fact that one or more storage drivesare currently offline (e.g., for maintenance). In such case, the zonemanager 442 may consult the elastic capacity library 450 to identify astorage location where the incoming data can be temporarily storedaccording to the storage condition of the first logical zone. Once theoffline storage resources become available in the first logical zone,the data can be moved from the temporary storage location to a morepermanent storage location within the first logical zone.

In another implementation, the zone manager 442 works in conjunctionwith the elastic capacity library 450 to permanently increase a storagecapacity of a given logical zone.

For example, the demand for storage capacity in a logical zone may, atsome point, exceed the available storage capacity in that logical zone.Rather than query a user to replace disks or media units, the zonemanager 442 can simply re-allocate unused storage capacity of onelogical zone to another logical zone that is in need of increasedstorage capacity.

In yet another implementation, the zone manager 442 tracks health andwear-leveling of various storage resources within each zone, anticipatesthe failures of the various storage resources, adds capacity to eachzone as needed (e.g., via the elastic capacity library 450), andautomatically moves data between the old (e.g., failing) storageresources and the storage resources newly allocated to the logical zone.

In still another implementation, a consumer leases components of storagesystem implementing the control system 402. Depending on the terms ofthe licensing agreement, the user may not initially have write access toall of the storage resources in the storage system. For example, somestorage resources may be in an offline (powered off) state untilremotely activated. If the user upgrades a subscription plan, the zonemanager 442 may be instructed to elastically allocate some of thepreviously inaccessible resources to one or more of the logical zones.

In some implementations, logical zones in the storage system 400overlap, and a storage resource may be assigned to two or more logicalzones. For example, a solid state device (SSD) may belong to a ‘highaccess speed logical zone’ exclusively including high speed devices andalso belong to ‘high redundancy logical zone’ including both high-speedand low-speed devices.

In various implementations, the zone manager 442 is an object manager, afile system manager and may incorporate a proprietary interface, such asa block layer interface 454. The zone manager 442 is communicativelycoupled, through the block layer interface 454, to a plurality ofstorage nodes (e.g., rack controllers, media unit controllers, etc.)within the mass storage system 400. Communication channels may allow forbidirectional data flow between all storage nodes in the mass datastorage system 400. For example, the zone manager 442 may becommunicatively coupled a plurality of different rack controllers; eachrack controller may be communicatively coupled to media unit controllerswithin the corresponding rack; and each of the media unit controllersmay be communicatively coupled to an associated nest of internal storagedrives.

In implementations where incoming data is to be written to a logicalzone that utilizes shingled magnetic recording (SMR) technology, thezone manager 442 consults with an SMR manager 448 to write the incomingdata to an appropriate shingled logical zone. More specifically, thezone manger 442 consults the zone map 444 to select appropriateavailable storage space for the incoming data. The zone manager 442instructs the SMR manager 448 to write the incoming data to the selectedlogical zone (and/or specific selected storage resources) within thestorage system 400.

FIG. 5 illustrates example operations 500 for mapping and selectinglogical zones in a mass data storage system. A mapping operation 505maps different storage resources to different logical zones in thestorage system. Each of the logical zones is defined based on a storagecondition applied to data stored therein. The storage condition may be,for example, a performance characteristic satisfying an operationalthreshold common to storage resources in a logical zone; a method ofdata storage provided by storage resource(s) in a same logical zone;and/or a degree of data integrity attributable to a structuralarrangement of storage resource(s) in a same logical zone.

A receiving operation 510 receives an incoming data transfer request(e.g., a read or write request). A determination operation 515determines whether the data transfer request is a write request. If thedata transfer request is a write request, a selection operation 520selects one of the logical zones to receive the data based on a storagecharacteristic associated with the write request that satisfies thestorage condition of the selected logical zone. For example, a logicalzone may have a storage condition prohibiting writes of new data inexcess of a threshold data size. If the incoming data has a size lessthan or equal to the threshold data size, the storage condition issatisfied.

In another implementation, a storage condition is an outcome of aprocessing operation performed on data stored within a specific zone.For example, the storage condition may be a level of security,redundancy, compression, type of encryption, etc. Such storagecondition(s) may be satisfied, for example, if a user specifies astorage characteristic that matches the storage condition. For example,the user may select the storage characteristic (e.g., a desiredredundancy) specifically within a read/write request, via a subscriptionservice, a profile election, etc.

In still other implementations, a storage condition is a performancecharacteristic of storage resources in a given zone. For example, thestorage resources may have a set capacity, be of a set type (disk, SSD,etc.), have a same or similar TTD, etc. Such storage condition(s) may besatisfied, for example, if a user specifies a storage characteristicthat matches or otherwise satisfies the storage condition. For example,the user may select a desired TTD that falls within a range of TTDsprovided by a particular logical zone.

If the determination operation 515 determines that the data transferrequest is a read request rather than a write request, a selection anddetermination operation 525 selects a logical zone that includes therequested data and determines read parameters for the read operationbased on the storage condition(s) applied within the selected logicalzone. For example, selecting the logical zone including the requesteddata may entail accessing one or more mapping tables to that associateparameters of the incoming read command with physical storagelocation(s) within the storage system.

Storage conditions of the selected logical zone may influence readparameters of the read command. For example, a particular ECC rate maybe utilized if the data is stored in a logical zone applying a specificECC rate. Similarly, the read operation may be postponed until an landiltime if the data is stored in a logical zone associated with a low QOSstorage condition. Further still, the number of resources from which thedata is retrieved may vary based on a redundancy associated with thelogical zone where the data is stored. These read parameters are meantto be explanatory and do not by any means contemplate all storageconditions that may affect read parameters related to execution of theread command.

FIG. 6 illustrates additional example operations 600 for mapping andselecting logical zones in a mass data storage system. A mappingoperation 605 maps different storage resources to different logicalzones in the storage system. Each of the different logical zones isdefined to have an independent power source for a set number of storageresources.

A selection operation 610 selects multiple storage resources within alogical zone to receive data of a write request. For example, anindependent power source may power no more than ¼ of the storageresources in any one zone. If ECC for incoming data of a write requestis written to ½ of the storage resources in a logical zone, then the ECCis guaranteed to be accessible on at least one storage resource even ifone of the power sources fails. This decreases a risk of systemperformance degradation in the event of a power source failure.

The embodiments of the disclosed technology described herein areimplemented as logical steps in one or more computer systems. Thelogical operations of the presently disclosed technology are implemented(1) as a sequence of processor-implemented steps executing in one ormore computer systems and (2) as interconnected machine or circuitmodules within one or more computer systems. The implementation is amatter of choice, dependent on the performance requirements of thecomputer system implementing the disclosed technology. Accordingly, thelogical operations making up the embodiments of the disclosed technologydescribed herein are referred to variously as operations, steps,objects, or modules. Furthermore, it should be understood that logicaloperations may be performed in any order, adding and omitting asdesired, unless explicitly claimed otherwise or a specific order isinherently necessitated by the claim language.

The above specification, examples, and data provide a completedescription of the structure and use of exemplary embodiments of thedisclosed technology. Since many embodiments of the disclosed technologycan be made without departing from the spirit and scope of the disclosedtechnology, the disclosed technology resides in the claims hereinafterappended. Furthermore, structural features of the different embodimentsmay be combined in yet another embodiment without departing from therecited claims.

What is claimed is:
 1. A method comprising: mapping a plurality ofstorage resources to one or more of multiple logical zones in a storagesystem, each of the storage resources having a storage controller andeach of the logical zones associated with a different storage conditionand defining a group of storage resources applying the associatedstorage condition to data stored therein.
 2. The method of claim 1further comprising: selecting one of the logical zones to receive dataof a write request based on a storage characteristic of the writerequest satisfying the storage condition of the logical zone that wasselected.
 3. The method of claim 2 wherein the storage characteristic isspecified in the write request.
 4. The method of claim 2 wherein thestorage characteristic is determined based on a user's subscription to astorage service.
 5. The method of claim 2 wherein the storage conditionand the storage characteristic indicate a degree of data integrity. 6.The method of claim 2 wherein the storage condition is a size of ashingled magnetic recording band and the storage characteristic is asize of the data of the write request.
 7. The method of claim 2 whereinthe storage condition and the storage characteristic indicate a level ofencryption for data of the write request.
 8. The method of claim 2wherein the storage condition is an access speed and the storagecharacteristic refers to a time-to-data (TTD) in which data of the writerequest can be accessed.
 9. The method of claim 1 wherein the storageresources have disparate physical characteristics.
 10. A storage systemcomprising: a zone manager configured to map a plurality of storagedevices to one of multiple logical zones in the storage system, each ofthe storage devices having a distinct storage controller and each of thelogical zones associated with a different storage condition and defininga group of storage devices applying the associated storage condition todata stored therein.
 11. The storage system of claim 10 furthercomprising: a write manager configured to select one of the logicalzones to receive data of a write request based on a storagecharacteristic of the write request satisfying the storage condition ofthe selected logical zone.
 12. The storage system of claim 11 whereinthe storage condition and the storage characteristic indicate a degreeof data integrity.
 13. The storage system of claim 11 wherein thestorage condition and the storage characteristic indicate of a level ofencryption for data of the write request.
 14. The storage system ofclaim 11 wherein the storage condition is an access speed and thestorage characteristic refers to a time-to-data (TTD) in which data ofthe write request can be accessed from the storage system.
 15. Thestorage system of claim 11 wherein each of the logical zones is definedto have an independent power source for each of a predetermined numberof storage devices.
 16. The storage system of claim 10 wherein each ofthe different logical zones is defined to include storage devices ofsubstantially the same capacity.
 17. The storage system of claim 10wherein the zone manager is configured to dynamically add or removestorage devices from each of the logical zones.
 18. A method comprising:mapping storage resources to different logical zones in a computersystem, each of the logical zones defined to have an independent powersource for each of a predetermined number of storage resources; andselecting multiple storage resources in a logical zone to receive dataof a write request.
 19. The method of claim 18 wherein each of thedifferent logical zones is defined to have a maximum number of storageresources in a same field replaceable unit.
 20. The method of claim 18wherein at least two of the storage resources are managed by differentstorage controllers.